#include <iostream>

int main() {
    struct {
        template<class T, class U>
        auto operator()(T x, U y) const -> decltype(x + y)
        {
            return x + y;
        }
    } lam;

    std::cout << lam(1, 2.2) << '\n';   // 3.2
}